package com.mybatis03.mapper;

import com.mybatis03.pojo.Emp;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.time.LocalDate;
import java.util.List;
import java.util.Map;

/**
 * @author wzm
 * @create 2023-09-27 11:16
 * project_name:javaweb2308
 */
@Mapper
public interface EmpMapper {
    List<Emp> list();//查询全部

    //条件查询
    List<Emp> listByIf(String name, Short gender, LocalDate begin, LocalDate end);

    //更新员工信息的方法
    void update(Emp emp);

    //根据多个id批量删除数据
    void deleteByIds(List<Integer> ids);

    //根据id查询
    Emp selectById(Integer id);

    //获取员工的总记录数
    int getCount();

    //查询某个员工信息为map集合
    // {id=1,name=张三，key=value}
    Map<String,Object> getEmpToMap(Integer id);

    //查询多条数据为一个map
    List<Map<String,Object>> getAllEmpToMap();

    //查询多条数据为一个map
    /*
            map {
    *      1  map{id:1,name=xxx}
    *      2  map{id:2,name=xxx}
    *      3  map{id:3,name=xxx}
             }
    * */
    @MapKey("name")
    Map<String,Object> getAllToMap01();


    //查询所有员工信息 动态的设置表名来查询
    List<Emp> getAllEmp(String tableName);


}
